package kinds
{
	/** 命名空间的类型*/
	public class NamespaceKind
	{
		public static const CONSTANT_Namespace:uint 					= 0x08;
		public static const CONSTANT_PackageNamespace:uint 				= 0x16;
		public static const CONSTANT_PackageInternalNs:uint				= 0x17;
		public static const CONSTANT_ProtectedNamespace:uint			= 0x18;
		public static const CONSTANT_ExplicitNamespace:uint				= 0x19;
		public static const CONSTANT_StaticProtectedNs:uint				= 0x1A;
		public static const CONSTANT_PrivateNs:uint						= 0x05;
		
		public static const DESC_Namespace:String 						= "NS";
		public static const DESC_PackageNamespace:String 				= "PACKAGE";
		public static const DESC_PackageInternalNs:String 				= "PACKAGE INTERNAL";
		public static const DESC_ProtectedNamespace:String 				= "PROTECTED";
		public static const DESC_ExplicitNamespace:String 				= "EXPLICIT";
		public static const DESC_StaticProtectedNs:String				= "STATIC PROTECTED";
		public static const DESC_PrivateNs:String 						= "PRIVATE";
		
		public static function desc(kind:uint):String
		{
			var str:String = "PUBLIC";
			switch(kind){
				case CONSTANT_Namespace:
					str = DESC_Namespace;
					break;
				
				case CONSTANT_PackageNamespace:
					str = DESC_PackageNamespace;
					break;
				
				case CONSTANT_PackageInternalNs:
					str = DESC_PackageInternalNs;
					break;
				
				case CONSTANT_ProtectedNamespace:
					str = DESC_ProtectedNamespace;
					break;
				
				case CONSTANT_ExplicitNamespace:
					str = DESC_ExplicitNamespace;
					break;
				
				case CONSTANT_StaticProtectedNs:
					str = DESC_StaticProtectedNs;
					break;
				
				case CONSTANT_PrivateNs:
					str = DESC_PrivateNs;
					break;
			}
			return str;
		}
	}
}